#region Usings

using System;
using System.ComponentModel;

#endregion

namespace KanbanBoard.Client.Model {
    public interface ITaskBoardCommandService {
        void CreateTaskAsync(int taskBoardId);
        void ChangeTaskDescriptionAsync(int taskId, string description);
        void PullAsync(int taskId, int columnId);
        void DeleteTaskAsync(int taskId);
        void PrioritizeAboveAsync(int taskId, int lowerPriorityTaskId);
        void PrioritizeBelowAsync(int taskId, int higherPriorityTaskId);
        
        event EventHandler<AsyncCompletedEventArgs> CreateTaskCompleted;
        event EventHandler<AsyncCompletedEventArgs> ChangeTaskDescriptionCompleted;
        event EventHandler<AsyncCompletedEventArgs> PullCompleted;
        event EventHandler<AsyncCompletedEventArgs> DeleteTaskCompleted;
        event EventHandler<AsyncCompletedEventArgs> PrioritizeAboveCompleted;
        event EventHandler<AsyncCompletedEventArgs> PrioritizeBelowCompleted;
    }
}

namespace KanbanBoard.Client.Model.Command {
    partial class TaskBoardCommandServiceClient : Model.ITaskBoardCommandService {}
}